#pragma once
#include "RenderAPI.hpp"

namespace Kriko
{
	class RenderCommand
	{
	public:
		static void Init()
		{
			s_RenderAPI->Init();
		}
		static void SetViewport(uint32_t p_x, uint32_t p_y, uint32_t p_width, uint32_t p_height)
		{
			s_RenderAPI->SetViewport(p_x, p_y, p_width, p_height);
		}
		static void SetClearColor(const glm::vec4& p_color)
		{
			s_RenderAPI->SetClearColor(p_color);
		}
		static void SetCamera(Camera* camera)
		{
			s_RenderAPI->SetCamera(camera);
		}
		static void SetRenderObject(RenderObject* renderObject)
		{
			s_RenderAPI->SetRenderObject(renderObject);
		}
		static int SetFrameBufferSize(size_t width, size_t height)
		{
			return s_RenderAPI->SetFrameBufferSize(width, height);
		}
		static void Render()
		{
			s_RenderAPI->Render();
		}
		static int FrameBufferRender()
		{
			return s_RenderAPI->FrameBufferRender();
		}
		static void Clear()
		{
			s_RenderAPI->Clear();
		}
		static glm::vec4 GetClearColor()
		{
			return s_RenderAPI->GetClearColor();
		}
	private:
		static Scope<RenderAPI> s_RenderAPI;
	};
}